package myTest.sort;

import java.io.UnsupportedEncodingException;

/*
 练习：
 "abc你好ef谢谢"按照字节个数截取该字符串，
 如果截取到中的半个，舍弃。
 */

public class SelectByByte {
	public static void main(String[] args) throws UnsupportedEncodingException {
		// [97, 98, 99, -60, -29, -84, 105, -70, -61, 101, 102, -48, -69, -48,
		// -69]
		String src = "琲你琲好abcef谢谢";
		// String charsetName = "utf-8";
		String charsetName = "gbk";
		int len = 5;

		String ret = selectByByte(src.getBytes(charsetName), len, charsetName);
		System.out.println(ret);
	}

	private static String selectByByte(byte[] bytes, final int count, String charsetName) throws UnsupportedEncodingException {
		if (count > bytes.length)
			return "";
		// System.out.println(Arrays.toString(bytes));
		int index, i;
		for (index = count - 1, i = 0; index >= 0 && bytes[index] < 0; index--, i++)
			;
		index = count - 1 - i % (charsetName.equals("utf-8") ? 3 : 2);
		return new String(bytes, 0, index + 1, charsetName);
	}

	// private static String select_GBK(byte[] bytes, final int count)
	// throws UnsupportedEncodingException
	// {
	// System.out.println(Arrays.toString(bytes));
	// int index, i;
	// for (index = count - 1, i = 0; index >= 0 && bytes[index] < 0; index--,
	// i++);
	// index = count - 1 - i % 2;
	// return new String(bytes, 0, index + 1, "gbk");
	// }
}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//